package com.wordlearning.third.audio;

import java.util.List;
import java.util.Map;

/**
 * 文本转语音(TTS)服务接口
 * 定义TTS相关的基础功能
 */
public interface TtsService {
    
    /**
     * 获取TTS服务支持的语言列表
     * @return 语言代码列表
     * @throws TtsException 当获取语言列表失败时抛出
     */
    List<String> getLanguages() throws TtsException;
    
    /**
     * 获取指定语言支持的语音列表
     * @param language 语言代码，默认为en-us
     * @return 语音标识与名称的映射
     * @throws TtsException 当获取语音列表失败时抛出
     */
    Map<String, String> getVoices(String language) throws TtsException;
    
    /**
     * 将文本转换为语音
     * @param text 要转换的文本
     * @param options 转换选项，包含voice、speed、language等
     * @return 音频数据字节数组
     * @throws TtsException 当转换失败时抛出
     */
    byte[] synthesize(String text, TtsOptions options) throws TtsException;
    
    /**
     * 获取服务信息
     * @return 服务信息映射
     * @throws TtsException 当获取服务信息失败时抛出
     */
    Map<String, Object> getServiceInfo() throws TtsException;
}